#pragma  once 
#include"com.hpp"

//请求格式
typedef struct request
{
  int x;
  int y;
  char op; //+-*/%
}request_t;

//响应格式

typedef struct response
{
  int code; //程序运行完毕的状态
  int result;// 
}response_t;

string SerializeRequest(request_t &req)//序列化
{
  Json::Value root;
  root["datax"]=req.x;
  root["datay"]=req.y;
  root["op"]=req.op;

  Json::FastWriter writer;
  return writer.write(root);
}

void DeserializeRequest(const string &json_string,request_t &out)//反序列化
{
  Json::Value root;
  Json::Reader reader;

  reader.parse(json_string,root);

  out.x=root["datax"].asInt();
  out.y=root["datay"].asInt();
  out.op=(char)(root["op"].asInt());
}
string SerializeRespon(response_t &res)//序列化
{
  Json::Value root;
  root["code"]=res.code;
  root["result"]=res.result;

  Json::FastWriter writer;
  return writer.write(root);
}

void DeserializeRespon(const string &json_string,response_t &out)//反序列化
{
  Json::Value root;
  Json::Reader reader;

  reader.parse(json_string,root);

  out.code=root["code"].asInt();
  out.result=root["result"].asInt();
}
